# Python 运算符

# 算术运算符
# + 加法
# - 减法
# * 乘法
# / 除法
# ** 乘方
# // 整除
# % 取模(余数)

# 赋值运算符
# = 赋值

# 比较运算符
# == 等于
# != 不等于
# < 小于
# > 大于
# <= 小于等于
# >= 大于等于

# 逻辑运算符
# and 与
# or 或
# not 非

# 位运算符
# & 按位与
# | 按位或
# ^ 按位异或
# ~ 按位取反
# << 左移
# >> 右移

# 成员运算符
# in 属于
# not in 不属于

# 运算符优先级(从高到低)
# 1. 圆括号 ()
# 2. 乘方 **
# 3. 乘除 // 整除 %
# 4. 加减 + -
# 5. 位移 << >>
# 6. 位与 &
# 7. 位异或 ^
# 8. 位或 |
# 9. 等于|不等于 == !=
# 10. 关系运算符 < > <= >=
# 11. 成员运算符 in not in
# 12. 逻辑运算符 and or not
# 13. 赋值运算符 =

# 运算符的使用
# 1. 算术运算符
print(2 + 3)    # 2加上3
print(2 - 3)    # 2减去3
print(2 * 3)    # 2乘以3
print(2 / 3)    # 2除以3的浮点数部分
print(2 ** 3)   # 2的3次方
print(2 // 3)   # 2除以3的整数部分
print(2 % 3)    # 2除以3的余数

# 2. 赋值运算符
a = 2
b = 3
a += b    # 等同于 a = a + b
print(a)
a -= b    # 等同于 a = a - b
print(a)
a *= b    # 等同于 a = a * b
print(a)
a /= b    # 等同于 a = a / b
print(a)
a **= b   # 等同于 a = a ** b
print(a)
a //= b   # 等同于 a = a // b
print(a)
a %= b    # 等同于 a = a % b
print(a)

# 3. 比较运算符
print(a > b)
print(a < b)
print(a == b)
print(a != b)
print(a >= b)
print(a <= b)

# 4. 逻辑运算符
print(a > b and a == b)
print(a == b or a <= b)
print(not a != b)

# 5. 位运算符
# 位运算符是对二进制位进行操作的运算符
# 5.1 按位与 &
print(0b1010 & 0b1100)    # 100
# 5.2 按位或 |
print(0b1010 | 0b1100)    # 1110
# 5.3 按位异或 ^
print(0b1010 ^ 0b1100)    # 10
# 5.4 按位取反 ~
print(~0b1010)    # -1101
# 5.5 左移 <<
print(0b1010 << 2)    # 40
# 5.6 右移 >>
print(0b1010 >> 2)    # 2

# 6. 成员运算符
# 6.1 in
print(2 in [1, 2, 3])    # True
print('f' in 'fuck')
# 6.2 not in
print(4 not in [1, 2, 3])    # True
print('f' not in 'fuck')



